package algorithm.leetcode.I101to200;

/**
 * 题目保证了数组中的每个数字都不同
 * 注意区分 Q35 Q154(即 SQ11)
 */

public class Q153 {

    public int findMin(int[] nums) {
        int low = 0, high = nums.length-1;
        int mid;

        while (low < high) {
            mid = low + ((high-low)>>1);

            // 右边有序,往左边找,注意tricky的地方在于mid比height小的时候mid是有可能是最小值的位置的
            // 而 nums[mid] > nums[high] mid不可能是最小值的位置,故mid-1
            if (nums[mid] < nums[high]) high = mid;
            else low = mid+1;
        }
        return nums[low];
    }

}
